1. Technical Field of the Invention
The present invention relates generally to spatial light modulators, and more specifically to a spatial light modulator having a mechanism for performing data refresh without causing tearing artifacts in the display.
2. Background Art
FIG. 1 illustrates a conventional display system 10 having a spatial light modulator (SLM) 12 which modulates a light beam from a light source 14 such as an ultra-high-pressure (UHP) lamp according to pixel value data from a pixel source 16 such as a graphics engine, for display on a display device 18 such as a rear projection television screen. The SLM has a frame buffer memory 20 which stores the pixel values and provides them to a pixel array 22 of independently-controllable pixel cells 24 under control of control logic 26. The pixel cells typically operate like liquid crystal display cells, in that they can be controlled to transmit or not transmit light, depending on a control voltage or current applied to them. In some SLMs, a pulse width modulation (PWM) scheme is used, giving a pixel any of a number of digital values. The longer the PWM signal is on, the longer the pixel cell is transmissive, making the pixel brighter; the longer the PWM signal is off, the longer the pixel cell is opaque, making the pixel darker.
FIG. 2 illustrates a typical PWM transfer curve of a pixel cell, and represents perceived brightness (vertical axis) over time (horizontal axis). Time can be expressed in terms of percentages of the duty cycle of the PWM signal during respective frames of display. Two frames (frame0 and frame1) are illustrated. For a first period of time, from the start until “A0”, having the signal on does not give any perceivable brightness to the pixel. Then, from “A0” to “B0”, the longer the signal is held on, the brighter the pixel is perceived to be. Then, after “B0” until the end of the frame, continuing to hold the PWM signal on does not yield any perceived additional brightness beyond that achieved at “B0”. Then, the same function is repeated for the next frame.
Commonly, the perceived brightness is not a purely linear function between “A0” and “B0”, and techniques such as lookup tables are used to compensate for the particular transfer curve of the pixel technology at hand. The desired brightness (typically expressed as a digital value from 0 to 255) is used as an index into the lookup table, which outputs a value indicating how long the PWM signal should be held on to achieve the specified brightness.
FIGS. 3A–C illustrate tearing in the display. Each image may be interpreted to represent either the display, the display image itself, the pixel array which produces that display image, or the contents of a frame buffer memory which drives the pixel array. FIG. 3A shows a display image showing the inventor's initials “SH” and a triangle. This may be a static image which has been displayed for any period of time. Then, the pixel engine causes the image to shift one or more pixels to the right, such as if the image were to begin scrolling to the right. If the SLM is not properly controlled, tearing may occur, as shown in FIG. 3B. The new pixel values for the upper portion of the image have been updated (causing that portion of the image to shift to the right), but the new pixel values for the lower portion of the image have not been updated before the image has been committed or refreshed to the display. FIG. 3C represents the desired outcome, in which the entire image has been shifted to the right and all pixels have received new values before the image is committed to the display. Ideally, the display pixel values will be completely updated to the pixel array before the pixel array is committed to the display, so the user does not see tearing. In some embodiments, this may mean that the pixel values should be completely updated to a back buffer before the back buffer is committed to the front buffer, or that the pixel values should be completely updated to a first ping-pong buffer before ping-ponging the display to the first buffer from a second buffer that held the prior frame.